#ifndef NV_STATEINTRO_H
#define NV_STATEINTRO_H

#include "Headers.h"
#include "GameState.h"

class IntroState : public GameState		//Singleton, since we have no need for multiple instances
{
public:
	static IntroState* instance(sf::RenderWindow &windowIn, StateManager& stateManagerIn)
	{
		static IntroState introState(windowIn, stateManagerIn);
		return &introState;
	}


	~IntroState();	//IntroState has no need for these, but the other GameStates do

	void init();	//IntroState has no need for these, but the other GameStates do
	void exit();	//IntroState has no need for these, but the other GameStates do

	void pause();	//IntroState has no need for these, but the other GameStates do
	void resume();	//IntroState has no need for these, but the other GameStates do

	void getInput(sf::RenderWindow& window);
	void update(StateManager& stateManager);
	void draw(sf::RenderWindow& window);

private:
	sf::String bgFilename;
	sf::Texture &bgTexture;
	sf::Sprite bgSprite;

	sf::Clock introTimer;
	sf::Uint8 opacity;

	IntroState(sf::RenderWindow &windowIn, StateManager& stateManagerIn);
	IntroState(const IntroState&);
	IntroState* operator=(const IntroState);
};


#endif